<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // Promise是es6给我们提供的新语法
        // 作用: 解决了js中异步嵌套(回调地狱)
        // Promise是一个构造函数
        // console.dir(Promise);

        // const p = new Promise(function(resolve,reject){
        //     // 这里写异步操作 ...

        //     // 有三个状态
        //     // 1.pending 等待
        //     // 2.fulfilled: 成功
        //     // 3.rejected: 失败
        //     // resolve()
        //     reject()
        // })

        // // Promise的实例可以调用一些方法: then  catch   finally
        // p.then(function(){
        //     console.log("成功了");
        // }).catch(function(){
        //     console.log("失败了");
        // }).finally(function(){
        //     console.log("成功或失败都执行");
        // })

        // Promise的静态方法( 将 函数 挂载到 函数上)
        // Promise.all(): 所有的异步promise调用完毕时,才执行function
        Promise.all([p1,p2,p3]).then(function(res){
            console.log(res);  //[res1,res2,res3]
        })

        // Promise.race(): 竞速,谁先回结果就是谁
        Promise.race([p1,p2,p3]).then(function(res){
            console.log(res);  //随机的
        })

        // Promise.reject(): 失败操作
        console.log(Promise.reject());
        console.log(new Promise(function(resolve,reject){
            reject()
        }))

        // // Promise.resolve(): 成功操作
        console.log(Promise.resolve());
        console.log(new Promise(function(resolve,reject){
            resolve()
        }))








    </script>
</body>
</html>